Apparatus and method for selective engagement in software distribution

ABSTRACT

Apparatus, methods and program products by which the user of a computer system may initiate an interval during which the user leaves the system idle to permit the system to become engaged in peer to peer software distribution.

FIELD AND BACKGROUND OF INVENTION

This invention is directed to apparatus, methods and program products by which a computer system normally under use by a usual operator may be selectively engaged in software distribution. More particularly, such as system may be linked into a peer to peer distribution scheme when the user has notified of an interval during which the user leaves the system idle. That is, when the system is user inactive but operationally active.

SUMMARY OF THE INVENTION

It has been proposed before that maintenance tasks for a user's system which require downloading and installation of software such as applications, full images, new virus definitions, security patches and the like be done from dedicated servers strategically located relative to a group of computer users and their workstations. Such systems of software distribution are well known and in wide use. Such systems impose significant burdens, including the cost of dedicated systems to function as servers.

Alternative proposals have been based on peer to peer distribution, where user workstations become part of the distribution network and provide a channel through which downloads are directed to other user systems. Such systems, which used to some extent, encounter resistance from computer system users where operation of the system occasionally requires “highjacking” of user systems when the user would prefer to be engaged in other tasks. Users dislike giving up CPU and hard drive cycles when actively operating their systems.

With the foregoing in mind, it is one purpose of this invention to provide a user of a client system with a way to indicate that a period of non-use has been initiated and engage the user's system in a peer to peer distribution if the system has been enabled by an administrator or other manager. This invention contemplates that such a capability for the user is provided by an “away” button which may be activated by the user to indicate to a network that a period of non-use or user inactivity has been started.

BRIEF DESCRIPTION OF DRAWINGS

Some of the purposes of the invention having been stated, others will appear as the description proceeds, when taken in connection with the accompanying drawings, in which:

FIG. 1 is an illustration of a deskside computer system in which the present invention is implemented;

FIG. 2 is an illustration of a notebook computer system in which the present invention is implemented;

FIG. 3 is an illustration of a handheld computer system in which the present invention is implemented;

FIG. 4 is an illustration of a telephone instrument in which the present invention is implemented;

FIG. 5 is an illustration of a display generated by any one of the system of FIGS. 1 through 4 in accordance with an alternate implementation of this invention;

FIG. 6 is a flow chart illustrating the steps in implementation of the invention in the apparatus of FIGS. 1 through 5; and

FIG. 7 is an illustration of a computer readable medium bearing program code which, when executing on one of the systems of FIGS. 1 through 4, implements the present invention.

DETAILED DESCRIPTION OF INVENTION

While the present invention will be described more fully hereinafter with reference to the accompanying drawings, in which a preferred embodiment of the present invention is shown, it is to be understood at the outset of the description which follows that persons of skill in the appropriate arts may modify the invention here described while still achieving the favorable results of the invention. Accordingly, the description which follows is to be understood as being a broad, teaching disclosure directed to persons of skill in the appropriate arts, and not as limiting upon the present invention.

The present invention may be implemented in a computer system, in a method of operating a computer system, and in the form of a program product distributed for use in a computer system.

Turning first to implementation in a computer system, FIG. 1 illustrates a typical computer workstation, here a personal computer system 10. The system includes a central processor, memory accessible to the processor for storing data including programs to be executed, a display 11, input devices including a keyboard 12 and a pointing device (here shown as a mouse 13), and output devices including a network interface, often known as a NIC. The NIC may implement network connectivity by a wired connection such as an Ethernet connection or by a wireless connection (indicated at 14 in FIG. 1) such as one of the IEEE 802.11 protocols. Such computer systems come in a variety of configurations, some known as notebook systems, others as desktop or deskside systems, some known as servers, and some known as “thin clients”. All such systems include some form of data storage device, typically a hard disk drive. Such a drive is typically housed within the system housing and not readily visible to an observer, but known to be present from system operation. The same technology appears in what are known as handheld computer systems (some of which are also known as PDAs or Personal Digital Assistants) and in certain telephone instruments such as cellular or smart telephones. The present invention finds usefulness with any such systems, and it is to be understood that the choice of one type of such system for illustration is in no way limiting upon the implementation of this invention. Persons familiar with the arts of computer technology will easily recognize the scope of applicability of what is here described and illustrated.

In one embodiment of the present invention, the away button is an electro mechanical device taking the form of a key 15 on the system keyboard 12 or a button on the front bezel of the display 11 (not shown in FIG. 1) or front bezel of the system. In such a form, the user may press the away button to signal through the network interface the initiation and termination of an interval of non-use of the system by the user. Such a signal may be received by a system administrator or manager to provide certainty that the client system is inactive and that maintenance, download of software or messages or signaling may be accomplished.

FIGS. 2, 3 and 4 illustrate implementations comparable to that described to this point in a notebook system, a handheld system, and a cell phone, respectively. In each view, an away button is shown at 25, 35 and 45, respectively.

FIG. 5 shows a display such as may be generated by any of the systems of FIGS. 1 through 5. Here, the away button is implemented by software which drives the display of an element 55 displayed visibly to a user on the display 51. The away button may be selectively activated by the user by using a pointing device to move a cursor over the element 55 or, where a touch screen is employed as the display, by touching the button element with a stylus or finger.

In accordance with the present invention, when a system user indicates that the system is going into a state known here as “user inactive” or “non-use” by actuating the away button (in whatever form that may take for the system in use), a program stored in the system activates and registers the system through the NIC with a master distribution server (or MDS) which communicates with the network to which the client system is connected. The MDS provides support to systems administrators or managers for the distribution of software to client systems, such as application updates, virus definition updates, security patches for software installed on the client systems, and the like. On registering, the client system may advise the MDS of any software already stored which may be appropriate and available for distribution in the peer to peer scheme.

Registration with the MDS allows to MDS to become aware that there will be an interval of time during which the client system is not in use by the normal user, yet is still functioning and of any resources already available through the client system. Thus, during that interval of time, the client system will have CPU and hard disk cycles available for other applications. The system NIC remains active during an interval of non-use to receive network communications engaging the system in peer to peer distribution of software. That is, the system, during non-use by the normal user, can be employed by the MDS and the network to assist in and support distribution of software to other client systems on the network. The client system becomes a sub-net representative for software download to other systems.

Desirably, a user indicating an interval of non-use will also indicate the length of time it is anticipated that the system will remain functionally operative and in the state of user non-use. Such an indication will enable the MDS to more accurately assign distribution work to available systems.

During the interval of non-use, the NIC remains active so that the system may receive software to be distributed from the MDS and store received software on a storage device in the client system. The storage device typically will be the system hard drive. The software may be stored in a partition hidden from, and inaccessible to, the normal user. From that storage location, the software may be delivered on the command of the MDS to other client systems on the network. This reception and storing may be of software to be distributed substantially immediately or software which will be retained for later accessibility or both.

On entering the non-use state and signaling to the MDS, the client system will send a packet indicating applications it is capable of distributing, the time interval available for assignment, and the position of the system on the network. The MDS will make entries into a table recording this data. Then, should another system on the network request a download, the MDS will check the table to see if a client system in the state of non-use is capable of making a distribution; make a comparison among available systems if there are a plurality; and assign a pathway for downloading. While downloading is progressing, the MDS will update the table to indicate that the serving client system is busy and send a packet to that system instructing it in providing the download. After the distribution completes, the table is cleared. After the client system user returns and cancels the away indication, the system data is removed from the table.

In the event that no non-use client is available, then the distribution is made form the MDS.

It is contemplated that the MDS may be able to retain a list of locations at which specific software elements are stored in client systems, to shorten the time necessary to make a distribution as here described.

The sequence of operation of any of the various implementations described is illustrated by a flow chart in FIG. 6. There the steps of a method in accordance with this invention are shown. The method steps include selectively signaling from a computer system the initiation and termination of an interval of non-use of the system by a user; and, during the interval of non-use, receiving at the computer system a selectively sent network communication engaging the computer system in peer to peer software distribution. During the interval of non-use, the computer system receives from a master distribution server software to be distributed further to other client systems which request distribution from the master distribution server, stores the software in a data storage device, and responds to direction from the master distribution server to furnish software stored in said storage device to be distributed further to other client systems which request distribution from the master distribution server.

In implementing this invention, it is apparent that computer executable program code is produced and stored on a computer readable medium from which the program code is deployed to and executed on a computer system. Such a medium is shown in FIG. 7 as a diskette 70. The choice of a diskette for illustration is simply that—an illustration—as such media come in a variety of forms including hard drives, flash memory and other devices. As will be clear from the discussion above, the program code comprises instructions which, when executing on the computer system selectively signals from the computer system the initiation and termination of an interval of non-use of the system by a user; and, during the interval of non-use, receives at the computer system a selectively sent network communication engaging the computer system in peer to peer software distribution as here described.

In the drawings and specifications there has been set forth a preferred embodiment of the invention and, although specific terms are used, the description thus given uses terminology in a generic and descriptive sense only and not for purposes of limitation. 

1. Apparatus comprising: a computer system having a network interface connection and an away button; said away button being responsive to selective activation by a user to signal through said network interface the initiation and termination of an interval of non-use of said system by the user; and said network interface connection remaining active during a signaled interval of non-use of said system by the user to receive network communications engaging said system in peer to peer distribution of software.
 2. Apparatus according to claim 1 wherein said away button is a hardware component.
 3. Apparatus according to claim 1 wherein said system further has a display and said away button is an element displayed visibly to a user on said display.
 4. Apparatus according to claim 1 wherein said computer system is a selected one of a class consisting of a notebook computer system; a desktop computer system; a handheld computer system; and a telephone device.
 5. Apparatus according to claim 1 wherein said away button is responsive to selective activation by a user to signal through said network interface and register said computer system with a master distribution server from which software distribution may be requested by other client computer systems.
 6. Apparatus according to claim 5 wherein said computer system further has a data storage device operatively coupled to said network interface connection and further wherein said network interface connection remains active during a signaled interval of non-use of said system by the user to receive from the master distribution server software to be distributed further to other client systems which request distribution from the master distribution server, said network interface connection and said data storage device cooperating to store the software to be distributed further.
 7. Apparatus according to claim 6 wherein said software received from the master distribution server is stored in partition hidden from and inaccessible to the computer system user.
 8. Apparatus according to claim 5 wherein said computer system further has a data storage device operatively coupled to said network interface connection and further wherein said network interface connection remains active during a signaled interval of non-use of said system by the user to respond to direction from the master distribution server to furnish software stored in said storage device to be distributed further to other client systems which request distribution from the master distribution server, said network interface connection and said data storage device cooperating to supply the software to be distributed further.
 9. Apparatus according to claim 8 wherein said software to be furnished to other client systems is stored in partition hidden from and inaccessible to the computer system user.
 10. Apparatus comprising: a computer system having a network interface connection through which said computer system may be linked to a client system; and computer readable media accessible to said computer system and storing program code executable on said system; said computer system when executing program code stored on said media receiving a signal initiated by a user of the client system and indicative of the initiation and termination of an interval of non-use of the client system by the user; and said computer system when executing program code stored on said media originating a network communication through said network interface to engage the client system in a peer to peer software distribution.
 11. Method comprising: selectively signaling from a computer system the initiation and termination of an interval of non-use of the system by a user; and during the interval of non-use, receiving at the computer system a selectively sent network communication engaging the computer system in peer to peer software distribution.
 12. Method according to claim 11 wherein said signaling of an interval of non-use is generated by user manipulation of a hardware button.
 13. Method according to claim 12 wherein said signaling of an interval of non-use is generated by user selection of a displayed software button.
 14. Method according to claim 11 wherein, during the interval of non-use, the computer system registers with a master distribution server from which software distribution may be requested by other client computer systems.
 15. Method according to claim 11 wherein, during the interval of non-use, the computer system receives from a master distribution server software to be distributed further to other client systems which request distribution from the master distribution server and stores the software in a data storage device.
 16. Method according to claim 11 wherein, during the interval of non-use, the computer system responds to direction from the master distribution server to furnish software stored in said storage device to be distributed further to other client systems which request distribution from the master distribution server.
 17. Method comprising: producing computer executable program code; storing the produced program code on a computer readable medium; and providing the program code to be deployed to and executed on a computer system; the program code comprising instructions which, when executing on the computer system: selectively signals from the computer system the initiation and termination of an interval of non-use of the system by a user; and during the interval of non-use, receives at the computer system a selectively sent network communication engaging the computer system in peer to peer software distribution.
 18. Method according to claim 17 wherein said signaling of an interval of non-use is generated by user manipulation of a hardware button.
 19. Method according to claim 17 wherein said signaling of an interval of non-use is generated by user selection of a displayed software button. 